//package com.example.pyphone3;
//
//import android.content.Context;
//import android.text.TextUtils;
//import android.util.Log;
//
//import com.aliyun.oss.ClientConfiguration;
//import com.aliyun.oss.ClientException;
//import com.aliyun.oss.OSS;
//import com.aliyun.oss.OSSClient;
//import com.aliyun.oss.ServiceException;
//import com.aliyun.oss.model.ObjectMetadata;
//import com.aliyun.oss.model.PutObjectRequest;
//import com.aliyun.oss.model.PutObjectResult;
//
//import org.springframework.boot.context.properties.ConfigurationProperties;
//
//import java.io.File;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
//@ConfigurationProperties(prefix = "spring.aliyunOSS")
//public class MyOSSUtils<OSSAsyncTask, OSSCredentialProvider, OSSRequest, OSSResult, OSSCompletedCallback> {
//    private static MyOSSUtils instance;
//
//    /**
//
// * 主机地址（根据地区而变化）
//
// */
//
//            private final  String  P_ENDPOINT ="https://oss-cn-beijing.aliyuncs.com";
//
//    /**
//
// * （服务器域名，后台给）
//
// */
//
//            private final  String P_STSSERVER ="";
//
//    private final  String P_BUCKETNAME ="course-client";
//
//    private OSS oss;
//
//    private SimpleDateFormat simpleDateFormat;
//
//    /**
//
// * （文件夹名字，与后台统一）
//
// */
//
//            private final  String OBJECT_NAME ="";
//
//    public MyOSSUtils() {
//
//    }
//
//    public  MyOSSUtils getInstance() {
//
//        if (instance ==null) {
//
//            if (instance ==null) {
//
//                return new MyOSSUtils();
//
//            }
//
//        }
//
//        return instance;
//
//    }
//
////    private void getOSs(Context context) {
////
//////推荐使用OSSAuthCredentialsProvider。token过期可以及时更新
////
////        OSSCredentialProvider credentialProvider =new OSSAuthCredentialsProvider(P_STSSERVER);
////
//////该配置类如果不设置，会有默认配置，具体可看该类
////
////        ClientConfiguration conf =new ClientConfiguration();
////
////        conf.setConnectionTimeout(15 *1000);// 连接超时，默认15秒
////
////        conf.setSocketTimeout(15 *1000);// socket超时，默认15秒
////
////        conf.setMaxConcurrentRequest(5);// 最大并发请求数，默认5个
////
////        conf.setMaxErrorRetry(2);// 失败后最大重试次数，默认2次
////
////        OSSClient oss =new OSSClient(context.toString(), P_ENDPOINT, credentialProvider);
////
////        if (simpleDateFormat ==null) {
////
////            simpleDateFormat =new SimpleDateFormat("yyyyMMdd");
////
////        }
////
////    }
//
///**
//
// * 上传图片 上传文件
//
// *
//
//     * @param context      application上下文对象
//
//     * @param ossUpCallback 成功的回调
//
//     * @param img_name      上传到oss后的文件名称，图片要记得带后缀 如：.jpg
//
//     * @param imgPath      图片的本地路径
//
// */
//
//    public void upImage(Context context, final OssUpCallback ossUpCallback, final  String img_name,  String  imgPath) {
//
////        getOSs(context);
//
////        final Date data = new Date();
//
////
//
////        data.setTime(System.currentTimeMillis());
//
//        PutObjectRequest putObjectRequest =new PutObjectRequest(P_BUCKETNAME,  OBJECT_NAME +"/" + img_name, imgPath);
//
//        // 异步上传时可以设置进度回调。
//
//        putObjectRequest.setProgressCallback(new OSSProgressCallback() {
//
//            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
//
//                Log.d("PutObject", "currentSize: " + currentSize +" totalSize: " + totalSize);
//
//            }
//
//        });
//
//        OSSAsyncTask task =oss.asyncPutObject(putObjectRequest, new OSSCompletedCallback() {
//
//
//            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
//
//                Log.d("PutObject", "UploadSuccess");
//
//                Log.d("ETag", result.getETag());
//
//                Log.d("RequestId", result.getRequestId());
//
//            }
//
//
//            public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
//
//// 请求异常。
//
//                if (clientExcepion !=null) {
//
//// 本地异常，如网络异常等。
//
//                    clientExcepion.printStackTrace();
//
//                }
//
//                if (serviceException !=null) {
//
//// 服务异常。
//
//                    Log.e("ErrorCode", serviceException.getErrorCode());
//
//                    Log.e("RequestId", serviceException.getRequestId());
//
//                    Log.e("HostId", serviceException.getHostId());
//
//                    Log.e("RawMessage", serviceException.getRawResponseError());
//
//                }
//
//            }
//
//        });
//
//        oss.asyncPutObject(putObjectRequest, new OSSCompletedCallback() {
//
//            @Override
//
//            public void onSuccess(OSSRequest request, OSSResult result) {
//
//                Log.e("MyOSSUtils", "------getRequestId:" + result.toString());
//
//                ossUpCallback.successImg(oss.presignPublicObjectURL(P_BUCKETNAME,  OBJECT_NAME +"/" +img_name));
//
//            }
//
//            public void onFailure(OSSRequest request, ClientException clientException, ServiceException serviceException) {
//
//                ossUpCallback.successImg(null);
//
//            }
//
//        });
//
//    }
//
///**
//
// * 上传图片 上传流
//
// *
//
//     * @param context      application上下文对象
//
//     * @param ossUpCallback 成功的回调
//
//     * @param img_name      上传到oss后的文件名称，图片要记得带后缀 如：.jpg
//
//     * @param imgbyte      图片的byte数组
//
// */
//
//    public void upImage(Context context, final OssUpCallback ossUpCallback, final  String img_name, byte[] imgbyte) {
//
////        getOSs(context);
//
//        final Date data =new Date();
//
//        data.setTime(System.currentTimeMillis());
//
//        PutObjectRequest putObjectRequest =new PutObjectRequest(P_BUCKETNAME, simpleDateFormat.format(data) +"/" + img_name, imgbyte);
//
//        putObjectRequest.setProgressCallback(new OSSProgressCallback() {
//
//
//            public void onProgress(Object request, long currentSize, long totalSize) {
//
//                ossUpCallback.inProgress(currentSize, totalSize);
//
//            }
//
//        });
//
//        oss.asyncPutObject(putObjectRequest, new OSSCompletedCallback() {
//
//
//            public void onSuccess(OSSRequest request, OSSResult result) {
//
//                Log.e("MyOSSUtils", "------getRequestId:" + result.getRequestId());
//
//                ossUpCallback.successImg(oss.presignPublicObjectURL(P_BUCKETNAME, simpleDateFormat.format(data) +"/" +img_name));
//
//            }
//
//            @Override
//
//            public void onFailure(OSSRequest request, ClientException clientException, ServiceException serviceException) {
//
//                ossUpCallback.successImg(null);
//
//            }
//
//        });
//
//    }
//
///**
//
// * 上传视频
//
// *
//
//     * @param context      application上下文对象
//
//     * @param ossUpCallback 成功的回调
//
//     * @param video_name    上传到oss后的文件名称，视频要记得带后缀 如：.mp4
//
//     * @param video_path    视频的本地路径
//
// */
//
//    public void upVideo(Context context, final OssUpCallback ossUpCallback, final  String video_name,  String video_path) {
//
////        getOSs(context);
//
//        final Date data =new Date();
//
//        data.setTime(System.currentTimeMillis());
//
//        PutObjectRequest putObjectRequest =new PutObjectRequest(P_BUCKETNAME, simpleDateFormat.format(data) +"/" + video_name, new File(video_path));
//
//        putObjectRequest.setProgressCallback(new OSSProgressCallback() {
//
//            @Override
//
//            public void onProgress(Object request, long currentSize, long totalSize) {
//
//                ossUpCallback.inProgress(currentSize, totalSize);
//
//            }
//
//        });
//
//        oss.asyncPutObject(putObjectRequest, new OSSCompletedCallback() {
//
//
//            public void onSuccess(OSSRequest request, OSSResult result) {
//
//                ossUpCallback.successVideo(oss.presignPublicObjectURL(P_BUCKETNAME, simpleDateFormat.format(data) +"/" +video_name));
//
//            }
//
//
//            public void onFailure(OSSRequest request, ClientException clientException, ServiceException serviceException) {
//
//                ossUpCallback.successVideo(null);
//
//            }
//
//        });
//
//    }
//
//    public interface OssUpCallback {
//
//        void successImg( String img_url);
//
//        void successVideo( String video_url);
//
//        void inProgress(long progress, long zong);
//
//    }
//
//}
